home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Shareware / IDimager Personal 4.2.0.3 / setup_IDimager_Personal_V4.exe / {app} / Scripts / Meta Data Scripts / Reset Title to Filename.psc < prev    next >
Text File  |  2008-10-01  |  2KB  |  76 lines

  1. {
  2.   Description: This script will reset the title of the meta data to the filename of the image
  3.   Author: HB van Zwietering
  4.   Initial date: 2006-04-30    
  5. }
  6. var
  7.   AXmp: TXMP;
  8.   i: Integer;
  9.   ACatItem: TCatalogItem;
  10.   AFileName: WideString;
  11. begin
  12.   if Selected.Count = 0 then
  13.   begin
  14.     Say ('No selection made.');
  15.     exit;
  16.   end;
  17.  
  18.   if not Ask ('Are you sure you want to revert the Title meta property to the file name for the selected images?') then
  19.     exit;
  20.  
  21.   Progress.Cancel := False;
  22.   Progress.ProgressBar := True;
  23.   Progress.Max := Selected.Count;
  24.   Progress.Show;
  25.  
  26.   AXmp := TXmp.Create (True);
  27.   ACatItem := TCatalogItem.Create(nil)
  28.     for i := 0 to Selected.Count - 1 do
  29.     begin
  30.       Progress.ProgressText := Selected.Items[i].FileName;
  31.       Progress.Pos := i + 1;
  32.       if Progress.Cancel then
  33.         break;
  34.  
  35.       if not Catalog.FindImageCombined(Selected.Items[i], ACatItem, False, phtNone) then
  36.       begin
  37.         if not Catalog.AddFile (Selected.Items[i], ACatItem, False) then
  38.           Continue;
  39.       end;
  40.  
  41.       {
  42.       // set the new title in the selected item
  43.       Selected.Items[i].ImageName := WideChangeFileExt (WideExtractFileName(Selected.Items[i].FileName), '');
  44.       ACatItem.ImageName          := Selected.Items[i].ImageName;
  45.       }
  46.  
  47.       AXmp.Reset;
  48.       Catalog.LoadXMPForItem (ACatItem, AXmp, Options.CachedXMP);
  49.  
  50.       // is there a preserved filename? Then use that one
  51.       AFileName := Nvl(AXmp.QuickGetProperty ('http://ns.adobe.com/xap/1.0/mm/', 'xapMM:PreservedFileName'), '');
  52.       if AFileName = '' then
  53.       begin
  54.         // no preserved filename? Then create it with the current file name
  55.         AFileName := Selected.Items[i].FileNameOnly;
  56.  
  57.         AXmp.QuickSetProperty ('http://ns.adobe.com/xap/1.0/mm/', 'xapMM:PreservedFileName', AFileName);
  58.       end;
  59.  
  60.       // change the title of the selected image to the filename, but without file extension!!
  61.       AXmp.QuickSetProperty ('http://purl.org/dc/elements/1.1/', 'dc:title', ChangeFileExt (Selected.Items[i].FileNameOnly, ''));
  62.  
  63.       // save the changed XMP
  64.       Catalog.SaveXMPForItem (ACatItem, AXmp, Options.CachedXMP);
  65.     end;
  66.     AXmp.Free;
  67.     ACatItem.Free;
  68.  
  69.   Progress.Hide;
  70.  
  71.   if Progress.Cancel then
  72.     Say ('Cancelled');
  73.  
  74.   RefreshCollection;
  75. end;
  76.